Przejdź do głównej zawartości

Sposoby łączenia się z serwerem

Możemy korzystać z wielu sposobów, aby połączyć się z serwerem. AWS oferuje nam kilka opcji, które opisuję poniżej.

EC2 Instance Connect

Ważne:

  • Nie musisz udostępniać i zarządzać kluczami SSH.
  • Instancja musi mieć publiczny adres IPv4.
  • Możesz połączyć się z instancją przez prywatną sieć za pomocą EC2 Instance Connect CLI z innych serwerów.
  • Jako nazwę użytkownika możesz podać dowolnego użytkownika, który istnieje w systemie i ma uprawnienia do logowania.

Więcej informacji:

Session Manager

Session Manager to w pełni zarządzana funkcja AWS Systems Manager, która pozwala zarządzać instancjami Amazon EC2 za pomocą interaktywnej przeglądarkowej powłoki lub za pomocą AWS CLI.

Ważne:

  • Agent SSM powinien być zainstalowany na instancji.
  • Należy utworzyć profil IAM Instance i przypisać rolę IAM do instancji.
  • Grupa bezpieczeństwa dodana do punktu końcowego VPC musi zezwalać na ruch przychodzący HTTPS (port 443) z zasobów w Twoim VPC, które komunikują się z usługą.
  • Włączenie prywatnego DNS wymaga ustawienia atrybutów enableDnsSupport i enableDnsHostnames na true dla VPC.

Przykład połączenia za pomocą AWS CLI:

aws ssm start-session --target INSTANCE_ID

Więcej informacji:

Klient SSH

Ważne:

  • Musisz udostępniać i zarządzać kluczami SSH.
  • Grupa bezpieczeństwa musi zezwalać na ruch przychodzący SSH (port 22).

Przykład połączenia:

ssh -i /path/key-pair-name.pem instance-user-name@instance-public-dns-name

Więcej informacji:

Konsola szeregowa EC2

Ważne:

  • Musisz zezwolić na "Konsolę szeregową EC2" w "Ustawieniach EC2".
  • Musimy mieć możliwość zalogowania się na serwer z lokalnej konsoli. Logowanie za pomocą hasła.
  • Musimy używać typu instancji opartego na systemie AWS Nitro.

Kiedy używać?

  • Kiedy chcemy zmienić hasło.
  • Kiedy chcemy odzyskać dostęp do serwera.

Włącz konsolę szeregową EC2:

aws ec2 enable-serial-console-access --region us-east-1

Więcej informacji:

Jak odzyskać dostęp do serwera?

Przypadek:

  • Nie mamy kluczy SSH.
  • Serwer SSH nie działa.
  • Nie mamy hasła do użytkownika.
  • Agent SSM nie został zainstalowany.

Domyślnie w obrazie Amazon Linux 2 nie jest generowane hasło dla użytkownika "ec2-user". Możemy ustawić to hasło, dodać klucz publiczny SSH lub naprawić inne problemy.

Mamy kilka popularnych sposobów, aby to zrobić:

  • Utwórz AMI z uszkodzonego serwera/EBS i utwórz nowy serwer z AMI.
  • Wyłącz instancję, odłącz EBS i podłącz EBS do nowego tymczasowego serwera, gdzie możemy naprawić usługi/pliki na tym EBS.
  • Ustaw hasło dla lokalnego użytkownika.

Ustawianie hasła dla lokalnego użytkownika na EC2

Możemy użyć "User data" do tego celu. Domyślnie dane użytkownika działają podczas pierwszego uruchomienia serwera.

Możemy uruchomić następujące polecenie, aby ustawić hasło dla użytkownika ec2-user:

 echo "hasło" | passwd --stdin ec2-user

Przykład skryptu, który uruchamia się raz:

#!/bin/bash
/bin/echo "Hello World" >> /tmp/helloworld.txt
echo "hasło" | passwd --stdin ec2-user

Co powinniśmy zrobić?

Możemy dodać następujący skrypt do "User data", który uruchamia się za każdym razem, gdy serwer się uruchamia:

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
echo "hasło" | passwd --stdin ec2-user

--//--

To ustawia hasło (hasło) dla użytkownika ec2-user.

Więcej informacji: